package com.lanou3g.code0408.permission;

/**
 * If there are no bugs, it was created by Chen FengYao on 2018/4/8;
 * Otherwise, I don't know who created it either
 */

/*
权限修饰符,就是用来控制 一个类中的属性/方法 是否能被其他类使用

权限修饰符一个有4个:
    public  protected  default(啥也不写) private

在Java中,能否访问其他类的属性/方法,分成了以下几种情况
1. 自己能否访问
2. 同一个包下的其他类能否访问
3. 子类能否访问(子类学继承的时候会说)
4. 任何类能否访问

        public   protected(用的少)  default(不写)     private
任何类   √             X                X                X
子类     √             √                X                X
同包     √             √                √                X
自己     √             √                √                √

*/

public class Person {
    String name;
    public int age;
    private String gender;

    //改变性别
    public void changeGender(){
        /*
        1. private 权限的属性
        只能够在当前类中被访问
        即  只能在当前类中 写代码来 对该属性进行值的修改
        或者 读取它的值
        */

        /*
        由于 java中想要访问一个对象的属性/方法
        需要使用的语法是 对象.属性 / 对象.方法
        而在Person这个类中,我们要想改变 gender属性的值
        又没有办法拿到 这个类的对象
        所以,Java 创造了一个关键字: this
        this 永远指: 本类对象,就是这个类 new出来的对象
        但是 具体指哪个对象,并不确定, 哪个对象调用了该方法
        this就指这个对象
            即: this指 调用该方法的 对象
        总结: 1.this指本类对象
              2.this指调用该方法的对象
        */
        this.gender = "男";
    }



}
